
// out vec4 gl_FragColor;
// in vec2 gl_FragCoord;

#ifdef GL_ES
precision mediump float;
#endif

//当前显示的画布UV  该向量随窗口拉伸变化
uniform vec2 u_resolution;
//运行时间
uniform float u_time;

void main(){

    //将画面原点置于画布中心 方法1  此方法 宽高不同的画布导致内部图形会相应拉伸
    // vec2 uv=gl_FragCoord.xy/u_resolution;
    // vec2 translate=vec2(-.5,-.5);
    //uv+=translate;
 
    //画布原点移动到中央  
    //并且不随外部画布拉伸 以画布较短的轴为基准  并归一化 1.0
    //获得当前屏幕宽高比 其中较短边归1.0 
    vec2 uv=(2.*gl_FragCoord.xy-u_resolution)/
            min(u_resolution.x,u_resolution.y);
    //uv= gl_FragCoord.xy/ min(u_resolution.x,u_resolution.y);
  
    //画圆  获得每个像素到画布中心的距离
    float c=length(uv);
    //定义半径
    float r=0.3;
    //阶跃函数 达到画布中心距离小于r的像素保留原值 其余像素值置0
    c=step(-r,-c);
    //c=smoothstep(-r,-0.2,-c);
    
    gl_FragColor=vec4(vec3(c),0.8);
    
}